Cluster-based computing solutions have become pervasive in providing all kinds of services, in part because computing clusters provide a cost-effective means to achieve greater processing power and reliability over single computers with comparable capabilities. Designing cluster-based computing solutions at the appropriate scale for a particular computing task using different numbers or types (e.g., functions, storage capacities, etc.) of computing nodes allows a cluster operator to efficiently allocate computing resources for the task. However, some computing tasks have fluctuating or limited duration resource requirements. For example, certain web-based services may only be utilized heavily during a certain time of the day, and during the remaining time, the computing resources may be underutilized. In such cases, cluster-based computing solutions can be designed with computing resources sufficient to accommodate the maximum resource requirements of the computing task. This solution, however, reduces the efficiency of the resource allocation, and thus the cost-effectiveness. Alternatively, the cluster computing solution may be scaled to maintain the efficient utilization of computing resources for the computing task. Scaling computing clusters, is not without its own difficulties, such as transferring data and service downtime, which also reduce the cost-effectiveness of cluster computing solutions.
While embodiments are described herein by way of example for several embodiments and illustrative drawings, those skilled in the art will recognize that embodiments are not limited to the embodiments or drawings described. It should be understood, that the drawings and detailed description thereto are not intended to limit embodiments to the particular form disclosed, but on the contrary, the intention is to cover all modifications, equivalents and alternatives falling within the spirit and scope as defined by the appended claims. The headings used herein are for organizational purposes only and are not meant to be used to limit the scope of the description or the claims. As used throughout this application, the word “may” is used in a permissive sense (i.e., meaning having the potential to), rather than the mandatory sense (i.e., meaning must). Similarly, the words “include,” “including,” and “includes” mean including, but not limited to.